module.exports = {
  publicPath: process.env.NODE_ENV === 'production'
    ? '/jirengu/'
    : '/',  //打包资源时的路径，默认值是 '/'
  outputDir: 'dist', //打包后资源输出的目录，默认是 dist
  assetsDir: '', //放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录，默认是 ''
  indexPath: 'home.html', //默认是index.html。指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径。
  filenameHashing: true, //默认true。生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存
  pages: {  //多页的配置
    index: {
      // page 的入口
      entry: 'src/index/main.js',
      // 模板来源
      template: 'public/index.html',
      // 在 dist/index.html 的输出
      filename: 'index.html',
      // 当使用 title 选项时，
      // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
      title: 'Index Page'
    },
    // 当使用只有入口的字符串格式时，
    // 模板会被推导为 `public/subpage.html`
    // 并且如果找不到的话，就回退到 `public/index.html`。
    // 输出文件名会被推导为 `subpage.html`。
    subpage: 'src/subpage/main.js'
  },
  lintOnSave: false, //默认是default。true| 'warning' 保存时把lint错误输出为警告。'default' ｜'error'把lint错误输出为编译错误会导致编译失败
  productionSourceMap: true, //默认是true，是否创建生产环境的SourceMap

  configureWebpack: config => {  //把配置信息合并到Webpack配置
    if (process.env.NODE_ENV === 'production') {
      // 为生产环境修改配置...
    } else {
      // 为开发环境修改配置...
    }
  },
  chainWebpack: config => {  //链式操作可修改/添加 loader和 plugin
    // GraphQL Loader
    config.module
      .rule('graphql')
      .test(/\.graphql$/)
      .use('graphql-tag/loader')
      .loader('graphql-tag/loader')
      .end()
      // 你还可以再添加一个 loader
      .use('other-loader')
      .loader('other-loader')
      .end()
    config
      .plugin('html')
      .tap(args => {
        return [/* 传递给 html-webpack-plugin's 构造函数的新参数 */]
      })
    config.resolve.alias // 添加别名
      .set('@', resolve('src'))

  },
  css: {
    extract: true, //默认生产环境下是 true，开发环境下是 false。是否把css单独抽离成文件
    sourceMap: false, //默认false，是否为 CSS 开启 source map
    loaderOptions: { //向 CSS 相关的 loader 传递选项
      sass: { //sass-loader
        additionalData: `@import "~@/variables.sass"`
      }
    }
  },

  devServer: {
    open: true,
    inline: true,
    host: '0.0.0.0', // 允许外部ip访问
    port: 8024, // 端口
    https: false, // 启用https
    hot: true,
    overlay: {
      warnings: true, //显示警告
      errors: true    //显示错误
    },
    proxy: {
      '/api': {
        target: 'http://127.0.0.10:3000'
      }
    }
  }
}